package com.blog.wl2023.controller.logged;

import cn.hutool.json.JSONUtil;
import com.blog.wl2023.entity.ArticleComment;
import com.blog.wl2023.entity.User;
import com.blog.wl2023.entity.response.Result;
import com.blog.wl2023.service.logged.LoggedService;
import com.blog.wl2023.utils.note.ResponseResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

/**
 * @author wule
 * @date 2023-09-28  22:00
 * @desc 已登录之后想访问的接口管理类
 */
@RestController
@RequestMapping("api/logged")
@ResponseResult
public class LoggedController {

	@Autowired
	LoggedService loggedService;

	/**
	 * 添加文章回复
	 * @param articleCommentJson 参数json
	 * @return 上传结果
	 */
	@PostMapping("postArticleComment")
	public Result postArticleComment(@RequestBody String articleCommentJson) {
		//不知道为什么前端四个参数传递只有三个可以接收到,就剩一个pId死活都是空,以后完善
		ArticleComment articleComment = JSONUtil.toBean(articleCommentJson, ArticleComment.class);
		return loggedService.postComment(articleComment);
	}

	/**
	 * 修改邮箱时接受的验证码  (与修改密码的验证码同一个字段,考虑后面用字符串村 123456-email  来判断是密码修改还是邮箱修改)
	 * @return Result
	 */
	@GetMapping("modifyEmailAddressGetCode")
	public Result modifyEmailAddressGetCode(String newEmail,String oldEmail){
		return loggedService.modifyEmailAddressGetCode(newEmail,oldEmail);
	}

	/**
	 * 修改邮箱时接受的提交接口
	 * @param newEmail 新邮箱地址
	 * @param oldEmail 旧的邮箱地址
	 * @return Result
	 */
	@GetMapping("modifyEmailAddress")
	public Result modifyEmailAddress(String newEmail,String oldEmail,String code){
		return loggedService.modifyEmailAddress(newEmail,oldEmail,code);
	}

	/**
	 * 修改用户信息
	 * @param user 用户信息
	 * @return Result.ok()
	 */
	@PostMapping("updateUserInfo")
	public Result updateUserInfo(@RequestBody User user){
		return loggedService.updateUserInfo(user);
	}

}
